系列: 不要再說你不會後端!30 天 Node.js 降維打擊指南
前情提要: 在前面幾天,我們完成了使用 Mongoose 進行資料庫的 CRUD 操作,也學會了如何處理非同步錯誤。今天我們要進一步接觸**使用者認證(Authentication)**的核心環節:密碼安全處理。
身為一個負責任的後端工程師,絕不能把使用者的明文密碼(Plaintext Password)直接存入資料庫!
如果資料庫不幸洩漏,明碼儲存會導致嚴重的資安災難。此外,傳統的 MD5 或 SHA256 等單向雜湊演算法已經不再安全,因為攻擊者可以利用預先計算好的「彩虹表(Rainbow Table)」輕鬆破解。
Bcrypt 是一種專門為密碼儲存設計的單向雜湊演算法,它具備以下兩大安全特性:
在 Node.js 中,我們通常使用 bcryptjs 套件(純 JavaScript 實作,跨平台支援度極佳):
npm install bcryptjs